<?php

/**
 * 邮件发送
 * @param  string $to      收件方
 * @param  string $title   标题
 * @param  string $content 内容
 * @return string          发送状态
 */
function sendMail($to, $title, $content) {
    //步骤
    //1复制文件到当前项目下的Thinkphp/libary/Org/Util (class.pop3.php class.smtp.php class.phpmailer.php)
    //2.修改类文件的名称
    //3.修改命名空间
    //4.注意在PHPMailer中最后一个继承
    $mail           = new \Org\Util\PHPMailer();
    $mail->CharSet  = "utf-8"; //设置采用utf8中文编码
    $mail->IsSMTP(); //设置采用SMTP方式发送邮件
    $mail->Host     = "smtp.163.com"; //设置邮件服务器的地址
    $mail->Port     = 25; //设置邮件服务器的端口，默认为25
    $mail->From     = C('EmailUsername'); //设置发件人的邮箱地址
    $mail->FromName = "众众网"; //设置发件人的姓名
    $mail->SMTPAuth = true; //设置SMTP是否需要密码验证，true表示需要
    $mail->Username = C('EmailUsername');
    $mail->Password = C('EmailPassword');
    $mail->Subject  = $title; //设置邮件的标题

    $mail->AltBody  = "text/html"; // optional, comment out and test

    $mail->Body     = $content;

    $mail->IsHTML(true); //设置内容是否为html类型

    $mail->AddAddress(trim($to), $name); //设置收件的地址
    if (!$mail->Send()) {
        //发送邮件
        // echo '发送失败:' . $mail->ErrorInfo;
        return false;
    } else {
        // echo "发送成功";
        return true;
    }
}

/**
 * [Jy 用于实例化极验验证类]
 * @param [type] $id  [极验验证所需id]
 * @param [type] $key [极验验证所需key]
 */
function Jy($id, $key) {
    return new GeetestLib($id, $key);
}

/**
 * [mkDirs 递归创建目录]
 * @param  [type] $dir [传入需要创建的目录层级]
 * @return [type]      [成功返回true / 失败返回false]
 */
function mkDirs($dir){
    if(!is_dir($dir)){
        if(!mkDirs(dirname($dir))){
            return false;
        }
        if(!mkdir($dir,0777)){
            return false;
        }
    }
    return true;
}

//当版本低于5.5时~
if( ! function_exists('array_column'))
{
  function array_column($input, $columnKey, $indexKey = NULL)
  {
    $columnKeyIsNumber = (is_numeric($columnKey)) ? TRUE : FALSE;
    $indexKeyIsNull = (is_null($indexKey)) ? TRUE : FALSE;
    $indexKeyIsNumber = (is_numeric($indexKey)) ? TRUE : FALSE;
    $result = array();

    foreach ((array)$input AS $key => $row)
    {
      if ($columnKeyIsNumber)
      {
        $tmp = array_slice($row, $columnKey, 1);
        $tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : NULL;
      }
      else
      {
        $tmp = isset($row[$columnKey]) ? $row[$columnKey] : NULL;
      }
      if ( ! $indexKeyIsNull)
      {
        if ($indexKeyIsNumber)
        {
          $key = array_slice($row, $indexKey, 1);
          $key = (is_array($key) && ! empty($key)) ? current($key) : NULL;
          $key = is_null($key) ? 0 : $key;
        }
        else
        {
          $key = isset($row[$indexKey]) ? $row[$indexKey] : 0;
        }
      }

      $result[$key] = $tmp;
    }

    return $result;
  }
}

  /**
   * [Uploads 图片上传处理函数]
   * @param [string] $filename [上传表单的上传域的name值]
   * @param [string] $path [保存至Public/Uploads/的文件夹]
   * @return  mixed [成功, 返回上传文件路径 | 失败, 返回false]
   */
  function Uploads($filename, $path='photo'){
    //处理图片
    if($_FILES[$filename]['error'] == 0){
        $upload = new \Think\Upload();// 实例化上传类    
        $upload->maxSize   =     3145728 ;// 设置附件上传大小    
        $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型    
        $upload->rootPath  =       './Public';
        $upload->savePath  =      '/Uploads/'.$path.'/'; // 设置附件上传目录   
        // 上传文件     
        $info   =   $upload->upload();    
        if(!$info) {// 上传错误提示错误信息       
            return false;
        }else{// 上传成功        
            // $this->success('上传成功！'); 
            $str =  ltrim($upload->rootPath,'.').$info[$filename]['savepath'].$info[$filename]['savename'];
            return $str;
        }
    }
  }


          /**
         * [transfBirth   m-d-y格式的时间字符串<=>时间戳]
         * @param  [mixed]  $arg  [字符串或时间戳]
         * @param  boolean $type [true是m-d-y=>时间戳, false为时间戳=>m-d-y]
         * @return [mixed]        [返回时间戳或m-d-y的时间字符串]
         */
        function transfBirth($arg, $type=true){
              if ($type) {
                $arr = explode('-', $arg);
                $ymd = $arr[2].'-'.$arr[0].'-'.$arr[1];
                return strtotime($ymd);
              } else {
                return date('m-d-Y', $arg);
              }
        }
